#pragma once
#include "resource.h"       // main symbols
#include "PhotoImport_i.h"

class ATL_NO_VTABLE CDropTarget :
	public CComObjectRootEx<CComSingleThreadModel>,
	public CComCoClass<CDropTarget, &CLSID_DropTarget>,
	public IDropTarget
{
public:
	CDropTarget()
	{
	}

DECLARE_REGISTRY_RESOURCEID(IDR_DROPTARGET_RGS)

BEGIN_COM_MAP(CDropTarget)
	COM_INTERFACE_ENTRY(IDropTarget)
END_COM_MAP()

	DECLARE_PROTECT_FINAL_CONSTRUCT()

	HRESULT FinalConstruct()
	{
		return S_OK;
	}

	void FinalRelease()
	{
	}

// IDropTarget
public:
    virtual HRESULT STDMETHODCALLTYPE DragEnter( 
        /* [unique][in] */ __RPC__in_opt IDataObject *pDataObj,
        /* [in] */ DWORD grfKeyState,
        /* [in] */ POINTL pt,
        /* [out][in] */ __RPC__inout DWORD *pdwEffect);
    
    virtual HRESULT STDMETHODCALLTYPE DragOver( 
        /* [in] */ DWORD grfKeyState,
        /* [in] */ POINTL pt,
        /* [out][in] */ __RPC__inout DWORD *pdwEffect);
    
    virtual HRESULT STDMETHODCALLTYPE DragLeave( void);
    
    virtual HRESULT STDMETHODCALLTYPE Drop( 
        /* [unique][in] */ __RPC__in_opt IDataObject *pDataObj,
        /* [in] */ DWORD grfKeyState,
        /* [in] */ POINTL pt,
        /* [out][in] */ __RPC__inout DWORD *pdwEffect);
};

OBJECT_ENTRY_AUTO(__uuidof(DropTarget), CDropTarget)
